1. Technical Field
The present disclosure generally relates to storage systems for data and in particular to managing periodic snapshots of volumes within a storage system.
2. Description of the Related Art
As the value and use of information continue to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes, thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
An information handling system can be configured in several different configurations. The information handling system can range from a single, stand-alone computer system to a distributed, multi-device computer system, to a networked computer system with remote or cloud storage systems. Both computer storage systems and remote or cloud storage systems can include redundant arrays of independent drives (RAID) that use hard disk drives or solid state storage drives. The drives are arranged as a storage pool, which can be partitioned into a number of volumes for the storage of data. The information handling system can be configured to store one or more copies of the volumes called a snapshot at regular periods of time. A snapshot is a copy of a volume at a point in time. Snapshots help to prevent loss of data in the event of a system malfunction.
One implementation for the storage of snapshots is copy on write. In copy on write, only pages written after completion of the volume snapshot consume additional storage space. The other pages in the snapshot are shared with the base volume. Each write to a distinct page causes a new page to be allocated for the storage of snapshots. Typically, a certain amount of space is reserved for the storage of snapshots per volume.
The number of input/output operations or writes to a storage device depends on many factors and is difficult for a system administrator to predict. As a result, it is difficult to determine the amount of space needed to store snapshots. If too much space is set aside for the storage of snapshots, the storage system will have poor utilization and excess unused space. If too little space is set aside for the storage of snapshots, the storage system will not be able to store all of the desired snapshots or may have to delete snapshots in order to create unused storage space.
Thin provisioned volumes make determining the amount of space needed to store snapshots even more difficult. A thin provisioned volume has a virtual capacity and a real capacity. Typically, the virtual capacity of a thin provisioned volume is significantly larger than its real capacity. Pages to a thin volume are only allocated on demand when a write occurs. Some thin provisioned volumes are allocated snapshot reserve space as a percentage of the volume reserve. Unfortunately, with this type of snapshot reserve space allocation, storage commands, such as the SCSI UNMAP command can have a detrimental effect. The unmapped pages cause a decrease in the volume reserve thereby decreasing the snapshot reserve. In addition an UNMAP command causes an increase in the consumption of snapshot reserve since the pages unmapped still need to be stored for the snapshots. Thus an UNMAP has a dual effect of decreasing the snapshot reserve and increasing snapshot usage. This change can cause an overage of snapshot reserve and lead to deletion of snapshots.